スコープの定義
class Person < ApplicationRecord scope :adult, -> {all.where('age >= 20').order('age')} end
class TestController < ApplicationController def index @persons = Person.adult end end
モデルのクラス内に
の形式で記入することでスコープとして定義したものが対象のクラスでメソッドのように使用することができるようになります。
上の例ではadultというスコープを定義し、コントローラーで使用しています。
定義時にスコープ名の末尾の,を書き忘れないように注意してください。
scope :スコープ名, -> {処理内容}
の形式で記入することでスコープとして定義したものが対象のクラスでメソッドのように使用することができるようになります。
上の例ではadultというスコープを定義し、コントローラーで使用しています。
定義時にスコープ名の末尾の,を書き忘れないように注意してください。